package Modelo;
import junit.framework.TestCase;


public class TerrenoTest extends TestCase {

	public void testQueBloqueHay(){
		Planeta planeta = new Planeta ("testTerreno.txt");
		Terreno terreno = new Terreno("testTerreno.txt",planeta);
		// Hay un bloque tierra en la posicion (12,8)
		Bloque tierra = terreno.queBloqueHay(12, 8);
		assertEquals ("t" ,tierra.toString());
	}
	
	public void testEliminarBloque(){
		Planeta planeta = new Planeta ("testTerreno.txt");
		Terreno terreno = new Terreno("testTerreno.txt",planeta);
		// Hay un bloque tierra en la posicion (12,8)
		Posicion aEliminar = new Posicion (12,8);
		Bloque tierra = terreno.queBloqueHay(aEliminar.getPosicionX(),aEliminar.getPosicionY());
		assertEquals ("t" ,tierra.toString());
		// Elimino el bloque tierra
		terreno.eliminarBloque(aEliminar);
		Bloque vacio = terreno.queBloqueHay(aEliminar.getPosicionX(), aEliminar.getPosicionY());
		// Obtengo el bloque eliminado
		assertEquals ("-" ,vacio.toString());
	}
	
	public void testConstruirBloque(){
		Planeta planeta = new Planeta ("testTerreno.txt");
		Terreno terreno = new Terreno("testTerreno.txt",planeta);
		Posicion aConstruir = new Posicion (16,8);
		// El caracter 'r' representa roca en este caso
		terreno.construirBloque(Constantes.TIPOS_DE_BLOQUE.ROCA, aConstruir);
		Bloque roca = terreno.queBloqueHay(aConstruir.getPosicionX(), aConstruir.getPosicionY());
		assertEquals ("r", roca.toString());
	}
	
	public void testConstruirTunel(){
		Planeta planeta = new Planeta ("testTerreno.txt");
		Terreno terreno = new Terreno("testTerreno.txt",planeta);
		Posicion unTunel = new Posicion (14,7);
		// Se construye un bloque de tunel hacia la derecha
		boolean haciaDerecha = true;
		terreno.construirTunel(unTunel, haciaDerecha);
		Bloque tunel = terreno.queBloqueHay(unTunel.getPosicionX(), unTunel.getPosicionY());
		// El caracter 'u' representa tunel en este caso
		assertEquals ("u", tunel.toString());
	}
	
}
